package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import modelo.ProductoDAO;

import vista.VentanaRegistrarVentaSimple;

public class ControladorRegistrarVentaSimple implements KeyListener, ActionListener, MouseListener {
     private VentanaRegistrarVentaSimple vRegistrarVentaSimple;
     private ProductoDAO productoDAO;
	 private boolean encontro;
	
	
	 
	 public ControladorRegistrarVentaSimple(
			VentanaRegistrarVentaSimple vRegistrarVentaSimple,
			ProductoDAO productoDAO, boolean encontro) {
		super();
		this.vRegistrarVentaSimple = vRegistrarVentaSimple;
		this.productoDAO = productoDAO;
		this.encontro = encontro;
	}
    

	public ControladorRegistrarVentaSimple() {
		super();
		// TODO Auto-generated constructor stub
		this.vRegistrarVentaSimple= new VentanaRegistrarVentaSimple();
		this.vRegistrarVentaSimple.setVisible(true);
		this.vRegistrarVentaSimple.setLocationRelativeTo(null);
		this.vRegistrarVentaSimple.agregarListener(this,this,this);
		this.productoDAO=new ProductoDAO();
	}


	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
       new ControladorRegistrarVentaSimple();
	}


	@Override
	public void keyTyped(KeyEvent e) {
		// TODO Auto-generated method stub
		//this.ejemplo.getLst1().setVisible(true);
				//this.ejemplo.getScrlpane().setVisible(true);
				            
				
		 char caracter = e.getKeyChar();
         //final String tx = //txtPrecioVenta.getText().toString();
         
        /*if (carater=='\n') {
			   this.ejemplo.getTxtBuscar().setText(this.ejemplo.getLst1().getSelectedValue().toString());
			   this.ejemplo.getLst1().setVisible(false);
			   this.ejemplo.getScrlpane().setVisible(false);
			   
		}*/if ((caracter==KeyEvent.VK_DELETE || caracter==KeyEvent.VK_BACK_SPACE) && encontro==true) {
			this.vRegistrarVentaSimple.getLstItemBusqueda().setVisible(true);
			this.vRegistrarVentaSimple.getSpItemBusqueda().setVisible(true);
		     
		}
						
		
	}


	
	@Override
	public void keyPressed(KeyEvent e) {
		// TODO Auto-generated method stub
		//busquedaPredictiva(e);
		   char caracter = e.getKeyChar();
           //final String tx = //txtPrecioVenta.getText().toString();
	          
          if (caracter=='\n' && encontro ) {
        	       if (this.vRegistrarVentaSimple.getLstItemBusqueda().isSelectionEmpty()) {
        	    	   this.vRegistrarVentaSimple.getLstItemBusqueda().setSelectedIndex(0);
        	    	   //this.ejemplo.getTxtBuscar().setText(this.ejemplo.getLst1().getSelectedValue().toString());
        	    	   //this.ejemplo.getModelo().clear();
        	    	   //this.ejemplo.getLst1().setVisible(false);
    				   //this.ejemplo.getScrlpane().setVisible(false);
				}
        	       this.vRegistrarVentaSimple.getTxtNombProducto().setText(this.vRegistrarVentaSimple.getLstItemBusqueda().getSelectedValue().toString().trim());
				   this.vRegistrarVentaSimple.getLstItemBusqueda().setVisible(false);
					this.vRegistrarVentaSimple.getSpItemBusqueda().setVisible(false);
				    
				   
			}
	}

	@Override
	public void keyReleased(KeyEvent e) {
		// TODO Auto-generated method stub
		char caracter = e.getKeyChar();
		if(caracter != '\n')
		 busquedaPredictiva(e);
	}

	private void busquedaPredictiva(KeyEvent e) {
		// TODO Auto-generated method stub
         
		if(this.vRegistrarVentaSimple.getTxtNombProducto().getText().isEmpty()){
			this.vRegistrarVentaSimple.getModeloItemProducto().clear();
			this.vRegistrarVentaSimple.getLstItemBusqueda().setVisible(false);
			this.vRegistrarVentaSimple.getSpItemBusqueda().setVisible(false);
			encontro=false;
		}
		else {
			 String cadena1= this.vRegistrarVentaSimple.getTxtNombProducto().getText();
			 /*String cadena2=null;
			if(cadena1.contains(" ") && cadena1.trim().equals(cadena1)){
				String[] cadenas= cadena1.split(" ");
				cadena1=cadenas[cadenas.length-2];
				cadena2=cadenas[cadenas.length-1];
			}*/
			
			if(productoDAO.BusquedaPredictiva(this.vRegistrarVentaSimple.getModeloItemProducto(),cadena1).isEmpty()){
				   encontro=false;
				   this.vRegistrarVentaSimple.getLstItemBusqueda().setVisible(false);
				   this.vRegistrarVentaSimple.getSpItemBusqueda().setVisible(false);
				   
			}else{
				this.vRegistrarVentaSimple.getLstItemBusqueda().setModel(productoDAO.BusquedaPredictiva(this.vRegistrarVentaSimple.getModeloItemProducto(),cadena1));
			    encontro=true;
			    this.vRegistrarVentaSimple.getLstItemBusqueda().setVisible(true);
				   this.vRegistrarVentaSimple.getSpItemBusqueda().setVisible(true);
			}	
		}
	}


	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		if(e.getClickCount()==2){
			this.vRegistrarVentaSimple.getTxtNombProducto().setText(
					this.vRegistrarVentaSimple.getLstItemBusqueda().getSelectedValue().toString().trim());
			this.vRegistrarVentaSimple.getLstItemBusqueda().setVisible(false);
			   this.vRegistrarVentaSimple.getSpItemBusqueda().setVisible(false);
			
		}
	}


	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}


}
